package facade;

//필자는 거북이를 키운다. 근데 거북이 키우는게 보통일이 아니다. 
//그냥 관상용 물고기라면 .. 여과기 1개면 되는데 .. 거북이는 물이 엄청 빨리 더러워 진다.
//뭐 거북이가 아주 깨끗한 물에서만 서식하는것도 아니라지만 .. 그래도 보기에 좋지 않아 자주 청소해 준다.
//근데 이 어항청소가 만만한게 아니다. 

//먼저 거북이 옮기고, 안에 악세사리 빼고, 물빼고 어항청소 하고, 악세사리 넣고, 물 채우고, 거북이 넣고 .. 
 
//갑자기 왜 이런얘기를 하는지 궁금하다면, 바로 퍼사드 패턴을 설명하기 위해서이다. 
//만약 자동으로 청소를 해주는 로봇이 있다고 한다면, 저런 명령을 하나하나 입력해 수행하도록 해야 할 것이다.
//별로 중간과정이 있는것도 아니고, 순서도 똑같다. 이런것을 일일이 수행한다면 다음과 같은 코드가 작성 될 것이다.

public class StartApp {  
    public static void main(String ar[]) {  
        /// 어항  
        Aquarium aquarium = new Aquarium("[거북이 어항]");  
        // 어항 장식  
        AquariumDecorate decorate = new AquariumDecorate(aquarium);  
        // 어항 물  
        AquariumWater water = new AquariumWater(aquarium);  
        // 거북이  
        Turtle turtle = new Turtle(aquarium);  
          
        System.out.println("어항청소 시작!");  
        // 거북이 꺼내기  
        turtle.getTurtle();  
        // 장식 꺼내기  
        decorate.getDecorate();  
        // 물 꺼내기  
        water.getWater();  
        // 어항 청소하기  
        aquarium.setWash();  
        // 어항에 물 채우기  
        water.setWater();  
        // 어항 장식  
        decorate.setDecorate();  
        // 거북이 넣기  
        turtle.insertTurtle();  
          
  
    }  
}  

